// 扁平化数组
function flat(arr) {
  const isDeep = arr.some((item) => item instanceof Array); // 是否深层数组
  if (!isDeep) {
    return arr;
  }
  const res = Array.prototype.concat.apply([], arr); // concat 仅扁平二维
  return flat(res); // 递归
}

const arr = [1, [1, 2, 3], [1, 2, 3, [1, 2, 3, [3, 4, 5]]]];
console.log(flat(arr));
